{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from sklearn.datasets import load_iris\n",
    "\n",
    "iris = load_iris()\n",
    "X = iris.data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 5.1,  3.5,  1.4,  0.2],\n",
       "       [ 4.9,  3. ,  1.4,  0.2],\n",
       "       [ 4.7,  3.2,  1.3,  0.2],\n",
       "       [ 4.6,  3.1,  1.5,  0.2],\n",
       "       [ 5. ,  3.6,  1.4,  0.2]])"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(150, 4)"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from scipy.linalg import svd\n",
    "U, S, V = svd(X, full_matrices=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((150, 4), (4,), (4, 4))"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "U.shape, S.shape, V.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 95.95066751,  17.72295328,   3.46929666,   1.87891236])"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#U[:5]\n",
    "#S\n",
    "#V"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 95.95066751,   0.        ,   0.        ,   0.        ],\n",
       "       [  0.        ,  17.72295328,   0.        ,   0.        ],\n",
       "       [  0.        ,   0.        ,   3.46929666,   0.        ],\n",
       "       [  0.        ,   0.        ,   0.        ,   1.87891236]])"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.diag(S)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "A_new = np.dot(U.dot(np.diag(S)), V)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 5.1,  3.5,  1.4,  0.2],\n",
       "       [ 4.9,  3. ,  1.4,  0.2],\n",
       "       [ 4.7,  3.2,  1.3,  0.2],\n",
       "       [ 4.6,  3.1,  1.5,  0.2],\n",
       "       [ 5. ,  3.6,  1.4,  0.2]])"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 5.1,  3.5,  1.4,  0.2],\n",
       "       [ 4.9,  3. ,  1.4,  0.2],\n",
       "       [ 4.7,  3.2,  1.3,  0.2],\n",
       "       [ 4.6,  3.1,  1.5,  0.2],\n",
       "       [ 5. ,  3.6,  1.4,  0.2]])"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_new[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.decomposition import TruncatedSVD\n",
    "#?TruncatedSVD\n",
    "svd = TruncatedSVD(2)\n",
    "X = svd.fit_transform(iris.data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 5.91220352,  2.30344211],\n",
       "       [ 5.57207573,  1.97383104],\n",
       "       [ 5.4464847 ,  2.09653267],\n",
       "       [ 5.43601924,  1.87168085],\n",
       "       [ 5.87506555,  2.32934799]])"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nEC7yGBWNCQIAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x96dd198>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.scatter(X[:, 0], X[:, 1], c=iris.target)\n",
    "plt.xlabel('SVD1')\n",
    "plt.ylabel('SVD2')\n",
    "plt.title('SVD')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
